package org.phalanx.game.units;

import java.util.Hashtable;

public class GenericUnit implements AbstractUnit {
	public static final Integer LEVEL_0 = 0;
	public static final Integer LEVEL_1 = 1;
	public static final Integer LEVEL_2 = 2;
	public static final Integer LEVEL_3 = 3;
	public static final Integer LEVEL_4 = 4;
	public static final Integer LEVEL_5 = 5;
	
	private Hashtable<String,UnitAttribute> unitAttributes;
	
	public GenericUnit(){
		unitAttributes = new Hashtable<String,UnitAttribute>();
		setUnitAttribute(HIT_POINTS, 100);
	}
	
	public void setUnitAttribute(String attrName, String value){
		UnitAttribute newProperty = new UnitAttribute();
		newProperty.setAttribute(value);
		unitAttributes.put(attrName, newProperty);
	}
	
	public void setUnitAttribute(String attrName, Boolean value){
		UnitAttribute newProperty = new UnitAttribute();
		newProperty.setAttribute(value);
		unitAttributes.put(attrName, newProperty);
	}
	
	public void setUnitAttribute(String attrName, Integer value){
		UnitAttribute newProperty = new UnitAttribute();
		newProperty.setAttribute(value);
		unitAttributes.put(attrName, newProperty);
	}
	
	public void setUnitAttribute(String attrName, Double value){
		UnitAttribute newProperty = new UnitAttribute();
		newProperty.setAttribute(value);
		unitAttributes.put(attrName, newProperty);
	}
	
	public UnitAttribute getUnitAttribute(String attrName){
		return unitAttributes.get(attrName);
	}

	@Override
	public String getUnitName() {
		return unitAttributes.get(UNIT_NAME).getAttribute();
	}

	@Override
	public void setUnitName(String name) {
		this.setUnitAttribute(UNIT_NAME, name);
	}

	
}